#ifndef BEEP_H
#define BEEP_H

#include <QMainWindow>
#include <QMessageBox>
#include <QDebug>
#include <QStatusBar>
#include <fcntl.h>
#include <unistd.h>
#include <cerrno>
#include <cstring>
#include <QPixmap>  // 添加QPixmap支持
#include <QFileInfo>

// 条件编译定义
#ifdef QT_DEBUG
    // 开发环境 - 定义模拟函数
    inline int simulate_ioctl(int, unsigned long, int) {
        qDebug() << "模拟ioctl调用 - 操作已处理";
        return 0;
    }
    #define ioctl simulate_ioctl
#else
    // 生产环境 - 包含真实头文件
    #include <sys/ioctl.h>
#endif

namespace Ui {
class beep;
}

class beep : public QMainWindow
{
    Q_OBJECT

public:
    explicit beep(QWidget *parent = nullptr);
    ~beep();

private slots:
    void on_pushButton_clicked();        // 返回主界面
    void on_pushButton_2_clicked();      // 打开蜂鸣器
    void on_pushButton_3_clicked();      // 关闭蜂鸣器

private:
    Ui::beep *ui;
    int beep_fd = -1;                    // 蜂鸣器设备文件描述符
    const char* device_path = "/dev/beep"; // 蜂鸣器设备文件路径

    // 控制命令定义
    enum : unsigned long {
        ON  = 0,  // 开启蜂鸣器命令
        OFF = 1   // 关闭蜂鸣器命令
    };
};

#endif // BEEP_H
